// 此配置文件是用来定义开发环境和生产环境中所需要的参数
// path是node.js的路径模块，用来处理路径统一的问题
var path = require('path')

module.exports = {
	// 下面是build也就是生产编译环境下的一些配置
    build: {
			sitEnv: require('./sit.env'), 
			prodEnv: require('./prod.env'), // 导入prod.env.js配置文件，只要用来指定当前环境
			index: path.resolve(__dirname, '../dist/index.html'), // 下面是相对路径的拼接，假如当前跟目录是config，那么下面配置的index属性的属性值就是dist/index.html
			assetsRoot: path.resolve(__dirname, '../dist'),  // 下面定义的是静态资源的根目录 也就是dist目录
			assetsSubDirectory: 'static',  // 下面定义的是静态资源根目录的子目录static，也就是dist目录下面的static
			assetsPublicPath: './',          //请根据自己路径配置更改，下面定义的是静态资源的公开路径，也就是真正的引用路径
			productionSourceMap: false,  // 下面定义是否生成生产环境的sourcmap，sourcmap是用来debug编译后文件的，通过映射到编译前文件来实现
			// Gzip off by default as many popular static hosts such as
			// Surge or Netlify already gzip all static assets for you.
			// Before setting to `true`, make sure to:
			 // 下面是是否在生产环境中压缩代码，如果要压缩必须安装compression-webpack-plugin
			productionGzip: false,
		    // 下面定义要压缩哪些类型的文件
			productionGzipExtensions: ['js', 'css'],
			// Run the build command with an extra argument to
			// View the bundle analyzer report after build finishes:
		    // 下面是用来开启编译完成后的报告，可以通过设置值为true和false来开启或关闭
            // 下面的process.env.npm_config_report表示定义的一个npm_config_report环境变量，可以自行设置
			bundleAnalyzerReport: process.env.npm_config_report
    },
    dev: {
			env: require('./dev.env'),   // 引入当前目录下的dev.env.js，用来指明开发环境
			port: 9528,   // 下面是dev-server的端口号，可以自行更改
			autoOpenBrowser: true,   // 下面表示是否自定代开浏览器
			assetsSubDirectory: 'static',
			assetsPublicPath: '/',
			proxyTable: {  // 下面是代理表，作用是用来，建一个虚拟api服务器用来代理本机的请求，只能用于开发模式
        '/auth': {
          target: 'http://127.0.0.1:9999',
          changeOrigin: true,
          pathRewrite: {
            '^/auth' : '/auth'
          }
        },
        '/admin': {
          target: 'http://127.0.0.1:9999',
          changeOrigin: true,
          pathRewrite: {
            '^/admin' : '/admin'
          }
        },
      },
			// 是否生成css，map文件，上面这段英文就是说使用这个cssmap可能存在问题，但是按照经验，问题不大，可以使用
            // 给人觉得没必要用这个，css出了问题，直接控制台不就完事了
			cssSourceMap: false
    }
}
